<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>

  <body>
    <script>
      function Star(uname, age) {
        this.uname = uname
        this.age = age
      }
      // 很多情况下,需要手动的利用constructor 这个属性指回 原来的构造函数
      /* Star.prototype.sing = function() {
          console.log('我会唱歌');
      };
      Star.prototype.movie = function() {
          console.log('我会演电影');
      } */
      Star.prototype = {
        // 如果修改了原来的原型对象，给原型对象赋值的是一个对象，则必须手动的利用constructor指回原来的构造函数
        constructor: Star,
        sing: function () {
          console.log("我会唱歌")
        },
        movie: function () {
          console.log("我会演电影")
        },
      }
      var shiyuan = new Star("石原里美", 18)
      console.log(Star.prototype)
      console.log(shiyuan.__proto__)
      console.log(Star.prototype.constructor)
      console.log(shiyuan.__proto__.constructor)
    </script>
  </body>
</html>
